#ifndef CIRCUITGRAPH_H
#define CIRCUITGRAPH_H
#include "vector"
#include "Gate.h"
#include "EdgeNode.h"
#include "VNode.h"
#include "QStack"
#include "QDebug"
/////////////////////////////////////////////////////////////
//class ArcNode
//{
//public:
//    int adjVex;			//邻接顶点所在表中下标
//    ArcNode *next;
//};
////////////////////////////////////////////////////////////
//class VNode
//{
//public:
//    Gate gate;
//    ArcNode * first;	//指向的第一个依附该顶点的顶点边结点
//};
////////////////////////////////////////////////////////////
class CircuitGraph
{
public:
    QVector <VNode> gates;
    int inDegree[50];//假设门的个数不超过50个，后续可以更改
    CircuitGraph();
    void setEdge(int from,int to);
    void selectGate_1(int mouse_x,int mouse_y);//遍历有的门，匹配坐标信息
    void selectGate_2(int mouse_x,int mouse_y);//遍历有的门，匹配坐标信息
//    void deselectGate();//
    void gateMove(int x,int y,int i);
    void topology();//拓扑赋值
};



#endif // CIRCUITGRAPH_H
